package etm.servlet.cuotas;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import upc.condominio.modelo.ConceptoPago;
import upc.condominio.modelo.Cuota;
import upc.condominio.modelo.CuotaConcepto;
import upc.condominio.modelo.Vivienda;
import etm.excepcion.DAOExcepcion;
import etm.negocio.GestionConceptoPago;
import etm.negocio.GestionRegCuotas;

/**
 * Servlet implementation class GenerarCuotasServlet
 */
@WebServlet("/GenerarCuotasServlet")
public class GenerarCuotasServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GenerarCuotasServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub		
		this.doPost(request, response);
		
	}
	
	
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		GestionRegCuotas negocio = new GestionRegCuotas();
		
		try {
			System.out.println("doPost GenerarCuotas Servlet");
			
			if (request.getParameter("accion").equalsIgnoreCase("Buscar_RegistroCuotas") ){
				System.out.println("Buscar_RegistroCuotas");
				Collection<Cuota> lista = null;
				int idUbicacion=Integer.parseInt(request.getParameter("cmbUbicacion"));
				String periodo=request.getParameter("cmbPeriodo");
				
				lista=negocio.listarxPeriodo(idUbicacion, periodo);
				
				request.setAttribute("CuotasLista", lista);
				request.setAttribute("idPeriodoSel", periodo);
				request.setAttribute("idUbicacionSel", idUbicacion);
				RequestDispatcher rd = request.getRequestDispatcher("RegistroCuotas.jsp");
				rd.forward(request, response);	
			}else if (request.getParameter("accion").equalsIgnoreCase("Buscar_RegistroCuotaItem_Res") ){
				//Al momento de redireccionar
				System.out.println("Redireccionar a agregar item ");
				System.out.println("idPeriodoSel==>"+request.getParameter("idPeriodoSel") + " Ubicacion "+request.getParameter("idUbicacionSel"));
				int idRess=Integer.parseInt(request.getParameter("idResidenteSel"));
				String periodo=request.getParameter("idPeriodoSel");
				int idCuota=Integer.parseInt(request.getParameter("idCuotaSel"));
				//
				
				Cuota cuota=negocio.listarConceptosxResidente(idCuota);
				if (idCuota==0){//es un item nuevo
					System.out.println("Vienda nula, setearemos la actual" + request.getParameter("idViviendaSel") + "  " +request.getParameter("nombresSel"));
					
					cuota.getVivienda().setIdVivienda(request.getParameter("idViviendaSel"));//grabar
					cuota.getVivienda().getResidente().setIdResidente(idRess);//grabar					
					cuota.getVivienda().getUbicacionVivienda().setIdUbicacion(Integer.parseInt(request.getParameter("idUbicacionSel")));//volver a realizar la consulta				
					cuota.setEstado("Pendiente");
				}else{
					cuota.setIdCuota(idCuota);
				}
				cuota.setPeriodo(periodo);//volver a realizar la consulta
				cuota.getVivienda().getResidente().setNombres(request.getParameter("nombresSel"));//Solo para mostrar
				
				
				//request.setAttribute("descUbicacion", "Bloque I");
				//request.setAttribute("nombresRes", cuota.getVivienda().getResidente().getNombres());
				request.getSession().removeAttribute("CuotaSel");
				request.getSession().setAttribute("CuotaSel", cuota);
				//RequestDispatcher rd = request.getRequestDispatcher("RegistroCuotaItem.jsp");
				//rd.forward(request, response);
				response.sendRedirect(request.getContextPath()	+ "/CuotasItemServlet");
			
			}
			
			
			
		} catch (DAOExcepcion e) {
			System.out.println(e.getMessage());
			RequestDispatcher rd = request.getRequestDispatcher("error.jsp");
			rd.forward(request, response);
		}
		
	}
	
	
}
